#pragma once
#ifndef __LIT__MOVABLE__LISTENER__INCLUDED__HH__
#define __LIT__MOVABLE__LISTENER__INCLUDED__HH__

#include <LitPrerequisites.h>
#include <LitPointer.hpp>
#include <boost\any.hpp>
#include <LitMovableTypes.h>

namespace Lit
{
	class LIT_API Movable;
	class LIT_API MovableListener
	{
		size_t	mMask;
	public:
		MovableListener( size_t mask = MT_ENTITY|MT_LIGHT|MT_PLANE|MT_SOUND );
		virtual ~MovableListener();

		size_t mask() const;
		
		virtual bool moveObject( Movable* mov, const Vec3 &position );
		virtual bool scaleObject( Movable* mov, const Vec3 &scale );
		virtual bool orientObject( Movable* mov, const Ogre::Quaternion &orientation );
	};
};

#endif